The Systems Network Architecture (SNA) is a widely used and highly successful communications framework developed by IBM that defines network functions and establishes standards for enabling computers to exchange and process data. SNA provides a coherent structure that enables users to establish and manage their networks and to change or expand them in response to new requirements and technologies. SNA includes products, combinations of hardware and programs designed in accordance with SNA specifications. In addition to a large number of computer terminals for both specific industries and general applications, IBM's SNA product line includes host processors, communication controllers, adapters, modems, and data encryption units. The SNA product line also includes a variety of programs and programming subsystems, such as telecommunications access methods, network management programs, distributed application programs and network control programs (NCPs).
SNA describes rules that enable users to transmit and receive information through their computer networks. As shown in FIG. 1, SNA utilizes a tree-structured architecture with a mainframe host computer 101 acting as the network control center. The architecture with a mainframe host computer 101 acting as the network control center. The network also includes terminals 102, front-end processors 103, workstations 104, and cluster controllers 105. The boundaries described by the mainframe host computer 101, front-end processors 103, cluster controllers 105, workstations 104 and terminals 102 are referred to as the network's domain 108. SNA network nodes include the various equipment attached to the network, such as the front-end processors 103 and the terminals 102. Unlike a switched telephone network that establishes physical paths between terminals for the duration of a session, SNA establishes a logical path between network nodes, such as the terminals 102, and routes each message with addressing information contained in the SNA protocol.
FIG. 2 displays the SNA communication protocol stack. SNA utilizes a communications stack for transferring data between computers, such as between the mainframe host computer 101 and the workstation 104 shown in FIG. 1 SNA utilizes five layers for communication within a domain: a function management layer 201, a data flow control layer 202, a transmission control layer 203, a path control layer 204, and a data-link control layer 205. The layers form a sequence from a lowest layer (the data-link control layer 205) to the highest layer (the function management layer 201). The layers divide the processing necessary for communicating between computers into discrete units. The data-link control layer 205 in the communications stack typically interacts with the physical medium used for transferring the data, such as coaxial cables. The function management layer 201, as the top layer of the communications stack, provides services to application programs, and the middle layers of the communications stack typically are responsible for routing and maintaining a connection.
A local computer transfers data to a remote computer when an application program first passes the data to the function management layer 201 of the communications stack of the local computer. The function management layer 201 then processes the data and sends the data to the next lowest layer in the communications stack, the data flow control layer 202. Thereafter, each layer in turn processes the data until the data reaches the bottom layer, the data-link control layer 205, where the data is sent to the remote computer over the transfer medium. The data-link control layer 205, as the bottom layer of the communications stack, may also receive data from the transfer medium and pass the data up the communications stack. Each layer performs its specific processing on the data until the data reaches the function management layer 201. The function management layer 201 processes the data and sends the data to an application program.
SNA utilizes various protocols including the Synchronous Data Link Control (SDLC), Data Link Control (DLC 802.2), and Data Link Control over Channel or Fiber Optics (DLC Channel/ESCON) protocols. SDLC is a bit-oriented synchronous communications protocol developed by IBM. SDLC provides high speed data transfer between SNA devices, such as the mainframe host computer 101 and the workstation 104 shown in FIG. 1. SDLC forms data into packets, known as frames, with as many as 128 frames transmitted sequentially in a given data transfer. As shown in FIG. 3, each frame 300 comprises a header 301, text 302, and a trailer 303. The header 301 consists of framing bits 301a indicating the beginning of the frame, address information 301b and various control data 301c. The text 302, or data payload, consists of as many as seven blocks of data, each having as many as 512 characters. A Request Unit (RU) is a basic unit of data in SNA. The trailer 303 comprises a frame check sequence (FCS) 303a for error detection and correction. A set of framing bits 303b mark the end of the frame 300. SDLC supports device communications generally conducted over high speed, dedicated private line, digital circuits. SDLC can operate in either point-to-point or multipoint network configurations. DLC over Local Area Network (LAN) specification 802.2 Ethernet or Token Ring, Bus and Tag Channel, and Enterprise System Connection (ESCON) may all be utilized as low-level protocols to accomplish SNA traffic exchange with a mainframe computer.
A logical unit (LU) is an SNA access port for network nodes such as the workstation 104 shown in FIG. 1. Each LU denotes the beginning or end of a communications system. In a bisynchronous network, an LU is a port through which a user accesses network services. An LU may support sessions with a system services control point (SSCP) on the mainframe host computer and with other LUs. LU 6.2, also known as advanced program-to-program communication (APPC), is a version of the LU that allows for peer-to-peer or program-to-program communications. The LU 6.2 protocol standard frees application programs from network-specific details. For example, on an IBM PC, an LU 6.2-equipped program accepts commands and passes them on to an SDLC card that communicates directly with the mainframe host computer or a token ring handler. LU 6.2 also creates a transparent environment for application-to-application communications, regardless of the types of systems used or their relative locations. For example, IU 6.2 enables users to develop application programs for peer-to-peer communications between PCs and IBM host computers. LU 6.2 also increases the processing power of the PC without the constraints of mainframe-based slave devices, such as the IBM 3274/3276 controllers.
Other LU types include LU 0 through LU 4, LU 6.1, and LU 7. LU 0 is non-architected so that transmitted data can be interpreted based upon user-defined rules. LU 0 is a peer-to-peer (program-to-program) type of data communication. The application program interface is more flexible but has fewer built-in capabilities than LU 6.2. LU 0 is mainly used for applications, such as file transfers, in which the protocols used are defined by the file transfer programs running at each end of the communication system.
LU 1 serves in sending SNA Character String (SCS) data streams from host-based applications to remote terminals, such as 3270 printers or 3770 RJE type computer terminals. LU 2 is suited for communications to 3270-type computer terminals. Communications sessions with 3270-type printers use LU 3. LU 4 is a peer-to-peer communications method that has been superceded by LU 6.2. LU 6.1 is applicable for program-to-program communications where the program at one end is an IBM type such as Information Management System (IMS). LU 7 serves communications between an application program and a 5250-type computer terminal.
A physical unit (PU) is the SNA component that manages and monitors the resources of a network node, such as the network node's attached links and adjacent link stations. SNA utilizes a classification system for PUs similar to a classification system used for network node types. PU 2.0 and 2.1 are protocols that allow applications written to APPC and interpreted by LU 6.2 that respectively access a mainframe host computer (PU 2.0) and a token ring local area network (LAN) (PU 2.1). PU type 2 refers to the management services in an SNA network node that always contains one PU representing the device and its resources to the network. PU type 2 is often referred to as a "cluster controller." PU type 4 is an IBM SNA front-end processor, such as the front-end processors 103 shown in FIG. 1. PU type 5 is an IBM SNA mainframe, such as System/370 or System/390. PU type 5 runs SNA's Virtual Telecommunications Access Method (VTAM) to handle data communications. VTAM will be discussed further below.
A systems services control point (SSCP) is an SNA term for software that manages the available connection services to be used by the network control program (NCP). There is only one SSCP in an SNA network domain, such as the domain 108 shown in FIG. 1, and the software normally resides in the mainframe host computer 101, such as a mainframe host computer of the IBM system/370 mainframe family. An LU may support sessions with the mainframe host computer based SSCP.
A Network Addressable Unit (NAU) in SNA may include both an LU, a PU, or an SSCP representing the origin or destination of information transmitted by the path control layer of an SNA network, such as the path control layer 204 of the SNA communications stack shown in FIG. 2. Each SNA network node has a unique address. The SNA Node Type (NT) provides the SNA classification of a network device based on the protocols it supports and the Network Addressable Units (NAUs) it contains. For example, Type 1 and Type 2 nodes are peripheral nodes, and Type 4 and 5 nodes are sub-area nodes.
The Virtual Telecommunications Access Method (VTAM) is a program component in an IBM computer that processes many of the SNA communications tasks for an application program. VTAM performs addressing and control path functions in an SNA network, allowing a terminal or an application to communicate with and transfer data to another application along a transmission medium. For example, in an IBM 370 or compatible computer, VTAM provides users at remote terminals with access to applications in the mainframe host computer. VTAM typically resides in the mainframe host computer. VTAM also provides resource sharing, a technique for efficiently using a network to reduce transmission costs.
A Gateway provides an entrance into and exit from a communications network such as an SNA network. A network systems engineer typically places a Gateway between two networks, such as an SNA network and a network utilizing another protocol. The Gateway functions as an electronic repeater device that intercepts and steers electronic signals from one network to another, such as from an SNA network to another type of network. Devices using asynchronous or binary synchronous communications may access SNA only through protocol converters such as a Gateway. Generally, a Gateway includes a signal conditioner that filters out unwanted noise and control characters. In data networks, Gateways are typically a node on both of two networks that connects two otherwise incompatible networks. For example, personal computer (PC) users on a local area network (LAN) may require a Gateway in order to access to a mainframe computer that does not utilize the same communication protocols as the PC. Thus, Gateways on data networks typically perform code and protocol conversion processes. FIG. 4 illustrates a Gateway 401 connecting the SNA network shown in FIG. 1 to another network 402.
In any computing system, faster and more efficient operations are always desirable. The complexity and sophistication of modem computing system designs, such as that provided by SNA, often render observation and diagnosis of latent inefficiencies extremely difficult. In addition, computer programmers typically follow the if-it-ain't-broke-don't-fix-it paradigm for improving computing systems and its corollary squeaky-wheel-gets-the-grease methodology. Unfortunately, the goal of achieving the highest possible levels of computing system efficiency may be thwarted by these approaches when a computing system or computing network functions adequately but at an efficiency level below its maximum potential due to an inherent inefficiency that passes undetected because the inefficiency is not so severe as to render the system inoperable.